Establishing correspondences between images is a long-standing problem with a multitude of applications in computer vision and graphics, ranging from classical tasks like motion analysis, tracking and stereo, through 3D reconstruction, objection detection and retrieval, to image enhancement and editing. Most correspondence methods are limited in handling a variety of different scenarios. For example, in one scenario, the images are close to each other in time and in viewpoint. In another scenario, the difference in viewpoint of the images may be large, but the scene consists of mostly rigid objects. In yet another scenario, the input images share some common content, but differ significantly due to a variety of factors, such as non-rigid changes in the scene, changes in lighting and/or tone mapping, and different cameras and lenses. The latter scenario is common in personal photo albums, which typically contain the same subjects photographed under different conditions. Current methods struggle to handle one or more of these types of scenarios.